
const express = require('express');

let app = express();

// API,数据接口，应用程序处理接口
app.get('/test', (req, res) => {
    // try {

    let obj = { name: '张三' };
    // 报错：TypeError: Cannot read property 'name' of undefined
    // 不能在undefined上读取name属性
    let cname = obj.child.name;

    res.send({ code: 200, msg: 'ok' });
    // } catch (err) {
    //     res.status(500).send(err.message);
    // }
})

// 在其他处理逻辑之后写上统一的错误处理中间件即可
app.use((err, req, res, next) => {
    // console.log('出异常啦', err);
    // 注意：{ code: 500, msg: err.message } code为500仅仅是一个程序员自定义的数字而已
    // 由于没有显示调用res.status方法设置状态码，所以http的状态码还是为200
    // res.status(500).send({ code: 500, msg: err.message });
    res.send({ code: 500, msg: err.message });
})

app.listen(8007, () => {
    console.log('8007中间件演示');
})